package com.sinogrand.elevator.utils

import com.sinogrand.elevator.data.models.PageInfo

/**
 * 分页工具使用示例
 * 这个文件仅用于演示如何使用 PaginationUtils，实际项目中可以删除
 */
object PaginationExample {
    
    /**
     * 使用示例
     */
    fun example() {
        // 示例1: 创建分页信息
        val pageInfo = PageInfo(
            page = 1,
            size = 20,
            total = 8
        )
        
        // 示例2: 判断是否有下一页
        val hasNext = PaginationUtils.hasNextPage(pageInfo)
        println("是否有下一页: $hasNext") // 输出: 是否有下一页: false (因为总共8条数据，每页20条，只有1页)
        
        // 示例3: 获取总页数
        val totalPages = PaginationUtils.getTotalPages(pageInfo)
        println("总页数: $totalPages") // 输出: 总页数: 1
        
        // 示例4: 判断是否是第一页
        val isFirst = PaginationUtils.isFirstPage(pageInfo)
        println("是否是第一页: $isFirst") // 输出: 是否是第一页: true
        
        // 示例5: 判断是否是最后一页
        val isLast = PaginationUtils.isLastPage(pageInfo)
        println("是否是最后一页: $isLast") // 输出: 是否是最后一页: true
        
        // 示例6: 获取下一页页码
        val nextPage = PaginationUtils.getNextPage(pageInfo)
        println("下一页页码: $nextPage") // 输出: 下一页页码: 1 (因为没有下一页，返回当前页)
        
        // 示例7: 获取已加载的数据条数
        val loadedCount = PaginationUtils.getLoadedItemCount(pageInfo)
        println("已加载数据条数: $loadedCount") // 输出: 已加载数据条数: 8
        
        // 示例8: 获取当前页数据条数
        val currentPageCount = PaginationUtils.getCurrentPageItemCount(pageInfo)
        println("当前页数据条数: $currentPageCount") // 输出: 当前页数据条数: 8
        
        // 示例9: 有下一页的情况
        val pageInfoWithNext = PageInfo(
            page = 1,
            size = 5,
            total = 15
        )
        
        val hasNext2 = PaginationUtils.hasNextPage(pageInfoWithNext)
        println("是否有下一页: $hasNext2") // 输出: 是否有下一页: true
        
        val nextPage2 = PaginationUtils.getNextPage(pageInfoWithNext)
        println("下一页页码: $nextPage2") // 输出: 下一页页码: 2
        
        val totalPages2 = PaginationUtils.getTotalPages(pageInfoWithNext)
        println("总页数: $totalPages2") // 输出: 总页数: 3
    }
}
